package com.srxz.personnelsystem.system.controller;

import com.srxz.personnelsystem.system.mapper.dto.LoginInfoDTO;
import com.srxz.personnelsystem.system.mapper.dto.UserInfoDTO;
import com.srxz.personnelsystem.system.service.LoginInfoService;
import com.srxz.personnelsystem.system.service.UserService;
import com.srxz.personnelsystem.util.BackMessage;
import com.srxz.personnelsystem.util.PageParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @ClassName: UserController
 * @author: wgchao
 * @createTime: 2019/1/8 2:25 PM
 * @Description: 用户信息管理
 */
@RestController
@RequestMapping("/personnel/basic")
public class UserController {
    @Autowired
    private UserService userService;
    @Autowired
    private LoginInfoService loginInfoService;

    @PostMapping("/user")
    public BackMessage save(@RequestBody UserInfoDTO userInfoDTO){
        if(StringUtils.isEmpty(userInfoDTO.getName())){
            return BackMessage.error("姓名信息缺失");
        }
        if(StringUtils.isEmpty(userInfoDTO.getIdcard())){
            return BackMessage.error("身份证号缺失");
        }
        return userService.save(userInfoDTO);
    }

    @DeleteMapping("/user")
    public BackMessage delete(@RequestBody UserInfoDTO userInfoDTO){
        if(StringUtils.isEmpty(userInfoDTO.getId())){
            return BackMessage.error("待删除用户信息主键缺失");
        }
        return userService.delete(userInfoDTO);
    }

    @DeleteMapping("/userlist")
    public BackMessage delete(@RequestBody List<UserInfoDTO> userInfoDTOs){

        return userService.deletelist(userInfoDTOs);
    }

    @PutMapping("/user")
    public BackMessage update(@RequestBody UserInfoDTO userInfoDTO){
        if(StringUtils.isEmpty(userInfoDTO.getId())){
            return BackMessage.error("待修改用户信息主键缺失");
        }
        return userService.update(userInfoDTO);
    }

    @GetMapping("/user")
    public BackMessage search(String userId){
        if(StringUtils.isEmpty(userId)){
            return BackMessage.error("用户信息主键缺失");
        }
        return userService.search(userId);
    }

    @PostMapping("/userofpage")
    public BackMessage searchToPage(@RequestBody PageParam pageParam){
        return userService.searchToPage(pageParam);
    }

    @PostMapping("/logininfo")
    public BackMessage save(@RequestBody LoginInfoDTO loginInfoDTO){
        if(StringUtils.isEmpty(loginInfoDTO.getUserId())){
            return BackMessage.error("用户信息主键缺失");
        }
        if(StringUtils.isEmpty(loginInfoDTO.getUname())){
            return BackMessage.error("账户名缺失");
        }
        if(StringUtils.isEmpty(loginInfoDTO.getPassword())){
            return BackMessage.error("密码缺失");
        }

        return loginInfoService.save(loginInfoDTO);
    }

    @PutMapping("/logininfo")
    public BackMessage update(@RequestBody LoginInfoDTO loginInfoDTO){
        if(StringUtils.isEmpty(loginInfoDTO.getId())){
            return BackMessage.error("主键缺失");
        }

        return loginInfoService.update(loginInfoDTO);
    }

    @DeleteMapping("/logininfo")
    public BackMessage delete(@RequestBody LoginInfoDTO loginInfoDTO){
        if(StringUtils.isEmpty(loginInfoDTO.getId())){
            return BackMessage.error("主键缺失");
        }

        return loginInfoService.delete(loginInfoDTO);
    }

    @GetMapping("/logininfo")
    public BackMessage searchLogin(String userId){
        return loginInfoService.search(userId);
    }

}
